/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package edu.upn.sigemfi.can.beans;


import edu.upn.sigemfi.can.bc.CuentaDelegate;

import edu.upn.sigemfi.can.bc.TarjetaDebitoDelegate;
import edu.upn.sigemfi.plt.be.Cuenta;
import edu.upn.sigemfi.plt.be.TarjetaDebito;
import java.util.List;
import javax.faces.model.SelectItem;

/**
 *
 * @author Programador
 */
public class CuentaController extends AbstractController {

    private CuentaDelegate delegado;
    private Cuenta cuenta;

    public Cuenta cuentaseleccionada;


     //Tarjeta

    private String nroTarjeta;
    private String clave;
    private boolean validacionTarjeta=false;
    private TarjetaDebitoDelegate delegadoTarjetaDebito;
    private TarjetaDebito tarjetaDebito;

    public CuentaController(){

        this.validacionTarjeta= false;
           
        delegado = new CuentaDelegate();

         //tarjeta
        tarjetaDebito = new TarjetaDebito();
        delegadoTarjetaDebito = new TarjetaDebitoDelegate();
    }

    public List<Cuenta> getCuentas() {
        try {
            return delegado.listar();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

   public SelectItem[] getListaCuentas() {
        SelectItem[] select = null;
        try {
            List<Cuenta> lista = delegado.listar();
            if (lista != null) {
                select = new SelectItem[lista.size()];
                int i = 0;
               
                for (Cuenta c : lista) {
                    select[i++] = new SelectItem(c, c.getNroCuenta());
                }
            } else {
                select = new SelectItem[1];
                select[0] = new SelectItem(null, "No existen Cuentas");
            }
        } catch (Exception e) {

        select = new SelectItem[1];
        select[0] = new SelectItem(null, "<<Hubo un error>>" + e.getMessage());
        }
        return select;
    }

    public Cuenta getCuenta() {
        return cuenta;
    }

    public void setCuenta(Cuenta cuenta) {
        this.cuenta = cuenta;
    }

    public Cuenta getCuentaseleccionada() {
        return cuentaseleccionada;
    }

    public void setCuentaseleccionada(Cuenta cuentaseleccionada) {
        this.cuentaseleccionada = cuentaseleccionada;
    }

    public CuentaDelegate getDelegado() {
        return delegado;
    }

    public void setDelegado(CuentaDelegate delegado) {
        this.delegado = delegado;
    }

   /**
     * @return the nroTarjeta
     */
    public String getNroTarjeta() {
        return nroTarjeta;
    }

    /**
     * @param nroTarjeta the nroTarjeta to set
     */
    public void setNroTarjeta(String nroTarjeta) {
        this.nroTarjeta = nroTarjeta;
    }

    /**
     * @return the validacionTarjeta
     */
    public boolean isValidacionTarjeta() {
        return validacionTarjeta;
    }

    /**
     * @param validacionTarjeta the validacionTarjeta to set
     */
    public void setValidacionTarjeta(boolean validacionTarjeta) {
        this.validacionTarjeta = validacionTarjeta;
    }

    /**
     * @return the tarjetaDebito
     */
    public TarjetaDebito getTarjetaDebito() {
        return tarjetaDebito;
    }

    /**
     * @param tarjetaDebito the tarjetaDebito to set
     */
    public void setTarjetaDebito(TarjetaDebito tarjetaDebito) {
        this.tarjetaDebito = tarjetaDebito;
    }

    /**
     * @return the clave
     */
    public String getClave() {
        return clave;
    }

    /**
     * @param clave the clave to set
     */
    public void setClave(String clave) {
        this.clave = clave;
    }
    




}
